import vine from '@vinejs/vine'

const createSchema = vine.object({
  fkCategoryId: vine.number().positive(),
  fkSupplierId: vine.number().positive(),
  fkWarehouseId: vine.number().positive(),
  fkBuyUnitId: vine.number().positive(),
  buyUnitNumber: vine.number().positive(),
  buyUnitPrice: vine.number().positive().optional(),
  fkStandardUnitId: vine.number().positive(),
  name: vine.string().maxLength(60),
  spec: vine.string().maxLength(60).optional(),
  place: vine.string().maxLength(60).optional(),
  normalPrice: vine.number().positive().optional(),
  barCode: vine.string().maxLength(20).optional(),
  memo: vine.string().maxLength(255).optional(),
})
export const createGoodsValidator = vine.compile(createSchema)

const updateSchema = vine.object({
  fkCategoryId: vine.number().positive().optional(),
  fkSupplierId: vine.number().positive().optional(),
  fkWarehouseId: vine.number().positive().optional(),
  fkBuyUnitId: vine.number().positive().optional(),
  buyUnitNumber: vine.number().positive().optional(),
  buyUnitPrice: vine.number().positive().optional(),
  fkStandardUnitId: vine.number().positive().optional(),
  name: vine.string().maxLength(60).optional(),
  spec: vine.string().maxLength(60).optional(),
  place: vine.string().maxLength(60).optional(),
  normalPrice: vine.number().positive().optional(),
  barCode: vine.string().maxLength(20).optional(),
  memo: vine.string().maxLength(255).optional(),
})

export const updateGoodsValidator = vine.compile(updateSchema)
